/**
 * 小程序不是运行在浏览器中，所以没有 BOM 和 DOM 对象
 * 小程序的 JavaScript 提供了一些额外 API
 * 小程序的 JavaScript 是支持 CommonJS 规范的
 */

/*
 * 引用其他js脚本文件的方法：require()
 * require()引用路径只能是相当路径，否则会报错
*/
var newsData = require('../../data/posts-data.js');
Page({
  data: {
    // 小程序总是会读取 data 对象来做数据绑定，这个动作的执行是在 onLoad 事件执行之后
    // 使用布尔值，不需要加引号
    condition: true
  },

  onLoad: function (options) {  
      
    /*
     * 获取服务器数据，将数据绑定给data对象
     * 获取本地数据[js文件]，将数据绑定给data对象
    */
    var news_list = newsData.newsList;
    /*
     * 数据绑定，将数据从逻辑层发送到视图层
     * 方法一：直接给data对象赋值
     * 该方法在0.11.122100版本不再支持
     * 方法二：使用this.setData()函数
     * 例：
     * var arr={age:'25'};
     * this.setData(arr);即将数据平铺到data对象中，相对于data:{age:'25'}
     * 如果要以对象或数组的形式绑定，必须定义其键值
     * this.setData({arr:arr});相当于data:{arr:{age:'25'}}
     * 在onLoad方法中，不是异步地去执行一个数据绑定，上述两种方法均实现数据绑定，如果是异步操作，只能使用方法二
     * 在自定义函数中，无法使用方法一
    */
    this.setData({ newsList: news_list });
  },

  // 页面跳转并传参
  openNewsDetail: function (even) {
    console.log(even)
    /*
     * 自定义属性的获取
     * 自定义属性如果是以中划线格式命名的，会在事件对象[even]的currentTarget与target键对应的值中以驼峰式出现
    */
    /*
     * currentTarget与target的区别
     * target指的是当前点击的元素；currentTarget指的是事件捕获的元素
    */
    var id = even.currentTarget.dataset.newsId;
    wx.navigateTo({
      // 在路径中传递参数
      url: 'news-detail/news-detail?id=' + id
    });
  },

  /*
   * 利用事件冒泡的方法，实现轮播图跳转文章详情
   * 优势：wxml文件绑定一次即可
  */
  onSwiper: function (even){
    var id = even.target.dataset.swiperId;
    wx.navigateTo({      
      url: 'news-detail/news-detail?id=' + id
    });    
  },

})
